package com.kkb.dao;

import com.kkb.bean.User;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface BaseUserDao {

    /**
     * 判断是否是已注册的用户
     * @param userPhone 用户手机号
     * @return true 已登录
     */
    boolean isLogin(String userPhone);

    /**
     * 根据用户手机号注册
     * @param userPhone 手机号
     * @return true，注册成功，false，注册失败
     */
    boolean register(String userPhone);

    /**
     * 根据用户名 更新登录时间和规范
     * @param username
     * @param date
     * @param ip
     */
    void updateLoginTime(String username, Date date, String ip);

    /**
     * 管理员根据账号密码登录
     * @param username 账号
     * @param password 密码
     * @return 登录的结果， true 表示登录成功
     */
    User login(String username, String password);

    /**
     * 根据用户手机号码查找 用户信息
     * @param phoneNumber 手机号
     * @return 查找到的用户信息
     */
    User findByPhoneNumber(String phoneNumber);

    /**
     * 添加用户
     * @param user 用户信息
     * @return true 添加成功，false失败
     */
    boolean insert(User user);

    /**
     * 根据用户id 修改用户信息
     * @param id 用户id
     * @param user 修改的用户信息
     * @return 修改的结果 true表示成功，false失败
     */
    boolean update(int id,User user);

    /**
     * 根据用户id ， 删除用户
     * @param id 用户id
     * @return 删除的结果
     */
    boolean delete(int id);

    /**
     * 查询用户信息列表
     * @param limit 是否分页
     * @param offset 从第几条数据开始
     * @param pageNumber 查询多少条
     * @return
     */
    List<User> findAll(boolean limit, int offset, int pageNumber);

    /**
     *  查询日新增用户数
     *  总的用户数
     * @return map
     */
    Map<String,Integer> console();
}
